package com.liao.badminton.dto;

import com.liao.badminton.code.BaseField;
import com.liao.badminton.code.validation.Delete;
import com.liao.badminton.code.validation.Insert;
import com.liao.badminton.code.validation.Update;
import io.swagger.annotations.ApiModelProperty;
import com.liao.badminton.entity.ImportRecord;
import javax.validation.constraints.NotNull;
import java.util.List;
import lombok.Data;
import com.liao.badminton.code.validation.FindDetail;
import java.lang.String;
import java.util.Date;

/**
* @author liaocheng
* @date 2024-11-01
* description:录入记录表:修改录入的时候要删掉单局和统计记录
*/
@Data
public class ImportRecordDto extends BaseField {

    @ApiModelProperty(value = "id")
    @NotNull(message = "主键id不能为空",groups = {Update.class, FindDetail.class})
    private Long id;

    @ApiModelProperty(value = "群id")
    @NotNull(message = "群id不能为空",groups = {Insert.class})
    private Long groupId;

    @ApiModelProperty(value = "文本内容:对战记录,以换行或；分隔，由胜的一方记录，胜的在前：" +
            "例如：1，李红胜张龙；2，李胜张；单打名字只能是一个字，不然认为是双打 3，黄陈胜李张*5； *号表示乘5的意思" +
            "如果是3v3的话：名字只能是中文且是3的位数；//修改的时候只修改状态的话可以不用传txtContent，我会去查数据库里的txtContent，传了就以这个传入的为准")

    @NotNull(message = "对战记录不能为空",groups = {Insert.class})
    private String txtContent;

    @ApiModelProperty(value = "对局类型：1:单打，2:双打，3:3v3 ；默认2，双打里可以有单打（如果有人名只能填一个，不然认为是双打），3v3人名只能填3的位数")
    private Integer boutType;

    @ApiModelProperty(value = "是否有效：0:无效（可能没打完，或者打错了），1:有效(记入统计);修改的话只能是从0改为1，如果是1改为0，直接掉删除接口就行了")
    private Integer validStatus;

    @NotNull(message = "主键id不能为空",groups = {Delete.class})
    private List<Long> delIds;  //批量删除ids

    public ImportRecord invertEntity(){
        ImportRecord dto = new ImportRecord();
        BaseField.invert(this, dto);
        dto.setId(this.getId());
        dto.setGroupId(this.getGroupId());
        dto.setTxtContent(this.getTxtContent());
        dto.setValidStatus(this.getValidStatus());
        return dto;
    }
}
